package server.core;

/**
 * describe:抽象状态
 *
 * @author helloworldyu
 * @data 2018/3/23
 */
public abstract class AbstractState implements IState{
	/**
	 * 状态关联的糖果机
	 */
	protected GumballMachine gumballMachine;

	public AbstractState( GumballMachine machine ){
		this.gumballMachine = machine;
	}

	/**
	 * 放入 25 美元
	 */
	@Override
	public abstract void insertQuarter();

	/**
	 * 退回 25 美元
	 */
	@Override
	public abstract void ejectQuarter();

	/**
	 * 转动手柄
	 */
	@Override
	public abstract void turnCrank();

	/**
	 * 发放糖果
	 */
	@Override
	public abstract void dispense();
}